package com.guigu.qingcheng.pojo;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.ToString;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotEmpty;
import java.util.Date;

@ToString
@ApiModel("")
@Table(name = "tb_order")
public class TbOrder {
    /**
     * 订单id
     */
    @ApiModelProperty(value = "订单id")
    @NotEmpty(message="订单id不能为空")
    @Id
    private String id;

    /**
     * 数量合计
     */
    @ApiModelProperty(value = "数量合计")
    @Column(name = "total_num")
    private Integer totalNum;

    /**
     * 金额合计
     */
    @ApiModelProperty(value = "金额合计")
    @Column(name = "total_money")
    private Integer totalMoney;

    /**
     * 优惠金额
     */
    @ApiModelProperty(value = "优惠金额")
    @Column(name = "pre_money")
    private Integer preMoney;

    /**
     * 邮费
     */
    @ApiModelProperty(value = "邮费")
    @Column(name = "post_fee")
    private Integer postFee;

    /**
     * 实付金额
     */
    @ApiModelProperty(value = "实付金额")
    @Column(name = "pay_money")
    private Integer payMoney;

    /**
     * 支付类型，1、在线支付、0 货到付款
     */
    @ApiModelProperty(value = "支付类型，1、在线支付、0 货到付款")
    @Column(name = "pay_type")
    private String payType;

    /**
     * 订单创建时间
     */
    @JsonFormat(timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "订单创建时间")
    @Column(name = "create_time")
    private Date createTime;

    /**
     * 订单更新时间
     */
    @ApiModelProperty(value = "订单更新时间")
    @Column(name = "update_time")
    private Date updateTime;

    /**
     * 付款时间
     */
    @ApiModelProperty(value = "付款时间")
    @Column(name = "pay_time")
    private Date payTime;

    /**
     * 发货时间
     */
    @ApiModelProperty(value = "发货时间")
    @Column(name = "consign_time")
    private Date consignTime;

    /**
     * 交易完成时间
     */
    @ApiModelProperty(value = "交易完成时间")
    @Column(name = "end_time")
    private Date endTime;

    /**
     * 交易关闭时间
     */
    @ApiModelProperty(value = "交易关闭时间")
    @Column(name = "close_time")
    private Date closeTime;

    /**
     * 物流名称
     */
    @ApiModelProperty(value = "物流名称")
    @Column(name = "shipping_name")
    private String shippingName;

    /**
     * 物流单号
     */
    @ApiModelProperty(value = "物流单号")
    @Column(name = "shipping_code")
    private String shippingCode;

    /**
     * 用户名称
     */
    @ApiModelProperty(value = "用户名称")
    private String username;

    /**
     * 买家留言
     */
    @ApiModelProperty(value = "买家留言")
    @Column(name = "buyer_message")
    private String buyerMessage;

    /**
     * 是否评价
     */
    @ApiModelProperty(value = "是否评价")
    @Column(name = "buyer_rate")
    private String buyerRate;

    /**
     * 收货人
     */
    @ApiModelProperty(value = "收货人")
    @Column(name = "receiver_contact")
    private String receiverContact;

    /**
     * 收货人手机
     */
    @ApiModelProperty(value = "收货人手机")
    @Column(name = "receiver_mobile")
    private String receiverMobile;

    /**
     * 收货人地址
     */
    @ApiModelProperty(value = "收货人地址")
    @Column(name = "receiver_address")
    private String receiverAddress;

    /**
     * 订单来源：1:web，2：app，3：微信公众号，4：微信小程序  5 H5手机页面
     */
    @ApiModelProperty(value = "订单来源：1:web，2：app，3：微信公众号，4：微信小程序  5 H5手机页面")
    @Column(name = "source_type")
    private String sourceType;

    /**
     * 交易流水号
     */
    @ApiModelProperty(value = "交易流水号")
    @Column(name = "transaction_id")
    private String transactionId;

    /**
     * 订单状态
     */
    @ApiModelProperty(value = "订单状态")
    @Column(name = "order_status")
    private String orderStatus;

    /**
     * 支付状态
     */
    @ApiModelProperty(value = "支付状态")
    @Column(name = "pay_status")
    private String payStatus;

    /**
     * 发货状态
     */
    @ApiModelProperty(value = "发货状态")
    @Column(name = "consign_status")
    private String consignStatus;

    /**
     * 是否删除
     */
    @ApiModelProperty(value = "是否删除")
    @Column(name = "is_delete")
    private String isDelete;

    /**
     * 获取订单id
     *
     * @return id - 订单id
     */
    public String getId() {
        return id;
    }

    /**
     * 设置订单id
     *
     * @param id 订单id
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * 获取数量合计
     *
     * @return total_num - 数量合计
     */
    public Integer getTotalNum() {
        return totalNum;
    }

    /**
     * 设置数量合计
     *
     * @param totalNum 数量合计
     */
    public void setTotalNum(Integer totalNum) {
        this.totalNum = totalNum;
    }

    /**
     * 获取金额合计
     *
     * @return total_money - 金额合计
     */
    public Integer getTotalMoney() {
        return totalMoney;
    }

    /**
     * 设置金额合计
     *
     * @param totalMoney 金额合计
     */
    public void setTotalMoney(Integer totalMoney) {
        this.totalMoney = totalMoney;
    }

    /**
     * 获取优惠金额
     *
     * @return pre_money - 优惠金额
     */
    public Integer getPreMoney() {
        return preMoney;
    }

    /**
     * 设置优惠金额
     *
     * @param preMoney 优惠金额
     */
    public void setPreMoney(Integer preMoney) {
        this.preMoney = preMoney;
    }

    /**
     * 获取邮费
     *
     * @return post_fee - 邮费
     */
    public Integer getPostFee() {
        return postFee;
    }

    /**
     * 设置邮费
     *
     * @param postFee 邮费
     */
    public void setPostFee(Integer postFee) {
        this.postFee = postFee;
    }

    /**
     * 获取实付金额
     *
     * @return pay_money - 实付金额
     */
    public Integer getPayMoney() {
        return payMoney;
    }

    /**
     * 设置实付金额
     *
     * @param payMoney 实付金额
     */
    public void setPayMoney(Integer payMoney) {
        this.payMoney = payMoney;
    }

    /**
     * 获取支付类型，1、在线支付、0 货到付款
     *
     * @return pay_type - 支付类型，1、在线支付、0 货到付款
     */
    public String getPayType() {
        return payType;
    }

    /**
     * 设置支付类型，1、在线支付、0 货到付款
     *
     * @param payType 支付类型，1、在线支付、0 货到付款
     */
    public void setPayType(String payType) {
        this.payType = payType;
    }

    /**
     * 获取订单创建时间
     *
     * @return create_time - 订单创建时间
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置订单创建时间
     *
     * @param createTime 订单创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取订单更新时间
     *
     * @return update_time - 订单更新时间
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置订单更新时间
     *
     * @param updateTime 订单更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取付款时间
     *
     * @return pay_time - 付款时间
     */
    public Date getPayTime() {
        return payTime;
    }

    /**
     * 设置付款时间
     *
     * @param payTime 付款时间
     */
    public void setPayTime(Date payTime) {
        this.payTime = payTime;
    }

    /**
     * 获取发货时间
     *
     * @return consign_time - 发货时间
     */
    public Date getConsignTime() {
        return consignTime;
    }

    /**
     * 设置发货时间
     *
     * @param consignTime 发货时间
     */
    public void setConsignTime(Date consignTime) {
        this.consignTime = consignTime;
    }

    /**
     * 获取交易完成时间
     *
     * @return end_time - 交易完成时间
     */
    public Date getEndTime() {
        return endTime;
    }

    /**
     * 设置交易完成时间
     *
     * @param endTime 交易完成时间
     */
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    /**
     * 获取交易关闭时间
     *
     * @return close_time - 交易关闭时间
     */
    public Date getCloseTime() {
        return closeTime;
    }

    /**
     * 设置交易关闭时间
     *
     * @param closeTime 交易关闭时间
     */
    public void setCloseTime(Date closeTime) {
        this.closeTime = closeTime;
    }

    /**
     * 获取物流名称
     *
     * @return shipping_name - 物流名称
     */
    public String getShippingName() {
        return shippingName;
    }

    /**
     * 设置物流名称
     *
     * @param shippingName 物流名称
     */
    public void setShippingName(String shippingName) {
        this.shippingName = shippingName;
    }

    /**
     * 获取物流单号
     *
     * @return shipping_code - 物流单号
     */
    public String getShippingCode() {
        return shippingCode;
    }

    /**
     * 设置物流单号
     *
     * @param shippingCode 物流单号
     */
    public void setShippingCode(String shippingCode) {
        this.shippingCode = shippingCode;
    }

    /**
     * 获取用户名称
     *
     * @return username - 用户名称
     */
    public String getUsername() {
        return username;
    }

    /**
     * 设置用户名称
     *
     * @param username 用户名称
     */
    public void setUsername(String username) {
        this.username = username;
    }

    /**
     * 获取买家留言
     *
     * @return buyer_message - 买家留言
     */
    public String getBuyerMessage() {
        return buyerMessage;
    }

    /**
     * 设置买家留言
     *
     * @param buyerMessage 买家留言
     */
    public void setBuyerMessage(String buyerMessage) {
        this.buyerMessage = buyerMessage;
    }

    /**
     * 获取是否评价
     *
     * @return buyer_rate - 是否评价
     */
    public String getBuyerRate() {
        return buyerRate;
    }

    /**
     * 设置是否评价
     *
     * @param buyerRate 是否评价
     */
    public void setBuyerRate(String buyerRate) {
        this.buyerRate = buyerRate;
    }

    /**
     * 获取收货人
     *
     * @return receiver_contact - 收货人
     */
    public String getReceiverContact() {
        return receiverContact;
    }

    /**
     * 设置收货人
     *
     * @param receiverContact 收货人
     */
    public void setReceiverContact(String receiverContact) {
        this.receiverContact = receiverContact;
    }

    /**
     * 获取收货人手机
     *
     * @return receiver_mobile - 收货人手机
     */
    public String getReceiverMobile() {
        return receiverMobile;
    }

    /**
     * 设置收货人手机
     *
     * @param receiverMobile 收货人手机
     */
    public void setReceiverMobile(String receiverMobile) {
        this.receiverMobile = receiverMobile;
    }

    /**
     * 获取收货人地址
     *
     * @return receiver_address - 收货人地址
     */
    public String getReceiverAddress() {
        return receiverAddress;
    }

    /**
     * 设置收货人地址
     *
     * @param receiverAddress 收货人地址
     */
    public void setReceiverAddress(String receiverAddress) {
        this.receiverAddress = receiverAddress;
    }

    /**
     * 获取订单来源：1:web，2：app，3：微信公众号，4：微信小程序  5 H5手机页面
     *
     * @return source_type - 订单来源：1:web，2：app，3：微信公众号，4：微信小程序  5 H5手机页面
     */
    public String getSourceType() {
        return sourceType;
    }

    /**
     * 设置订单来源：1:web，2：app，3：微信公众号，4：微信小程序  5 H5手机页面
     *
     * @param sourceType 订单来源：1:web，2：app，3：微信公众号，4：微信小程序  5 H5手机页面
     */
    public void setSourceType(String sourceType) {
        this.sourceType = sourceType;
    }

    /**
     * 获取交易流水号
     *
     * @return transaction_id - 交易流水号
     */
    public String getTransactionId() {
        return transactionId;
    }

    /**
     * 设置交易流水号
     *
     * @param transactionId 交易流水号
     */
    public void setTransactionId(String transactionId) {
        this.transactionId = transactionId;
    }

    /**
     * 获取订单状态
     *
     * @return order_status - 订单状态
     */
    public String getOrderStatus() {
        return orderStatus;
    }

    /**
     * 设置订单状态
     *
     * @param orderStatus 订单状态
     */
    public void setOrderStatus(String orderStatus) {
        this.orderStatus = orderStatus;
    }

    /**
     * 获取支付状态
     *
     * @return pay_status - 支付状态
     */
    public String getPayStatus() {
        return payStatus;
    }

    /**
     * 设置支付状态
     *
     * @param payStatus 支付状态
     */
    public void setPayStatus(String payStatus) {
        this.payStatus = payStatus;
    }

    /**
     * 获取发货状态
     *
     * @return consign_status - 发货状态
     */
    public String getConsignStatus() {
        return consignStatus;
    }

    /**
     * 设置发货状态
     *
     * @param consignStatus 发货状态
     */
    public void setConsignStatus(String consignStatus) {
        this.consignStatus = consignStatus;
    }

    /**
     * 获取是否删除
     *
     * @return is_delete - 是否删除
     */
    public String getIsDelete() {
        return isDelete;
    }

    /**
     * 设置是否删除
     *
     * @param isDelete 是否删除
     */
    public void setIsDelete(String isDelete) {
        this.isDelete = isDelete;
    }
}